home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / man / cat.3 / DString.3 < prev    next >
Encoding:
Text File  |  1995-07-26  |  11.2 KB  |  199 lines

  1.  
  2.  
  3.  
  4.      TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt((((3333))))          TTTTccccllll ((((7777....0000))))          TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt((((3333))))
  5.  
  6.  
  7.  
  8.      _________________________________________________________________
  9.  
  10.      NNNNAAAAMMMMEEEE
  11.           Tcl_DStringInit, Tcl_DStringAppend,
  12.           Tcl_DStringAppendElement, Tcl_DStringStartSublist,
  13.           Tcl_DStringEndSublist, Tcl_DStringLength, Tcl_DStringValue,
  14.           Tcl_DStringTrunc, Tcl_DStringFree, Tcl_DStringResult -
  15.           manipulate dynamic strings
  16.  
  17.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  18.           ####iiiinnnncccclllluuuuddddeeee <<<<ttttccccllll....hhhh>>>>
  19.  
  20.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt(_d_s_P_t_r)
  21.  
  22.           char *
  23.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnndddd(_d_s_P_t_r, _s_t_r_i_n_g, _l_e_n_g_t_h)
  24.  
  25.           char *
  26.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnnddddEEEElllleeeemmmmeeeennnntttt(_d_s_P_t_r, _s_t_r_i_n_g)
  27.  
  28.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggSSSSttttaaaarrrrttttSSSSuuuubbbblllliiiisssstttt(_d_s_P_t_r)
  29.  
  30.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggEEEEnnnnddddSSSSuuuubbbblllliiiisssstttt(_d_s_P_t_r)
  31.  
  32.           int
  33.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggLLLLeeeennnnggggtttthhhh(_d_s_P_t_r)
  34.  
  35.           char *
  36.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggVVVVaaaalllluuuueeee(_d_s_P_t_r)
  37.  
  38.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggTTTTrrrruuuunnnncccc(_d_s_P_t_r, _n_e_w_L_e_n_g_t_h)
  39.  
  40.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggFFFFrrrreeeeeeee(_d_s_P_t_r)
  41.  
  42.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggRRRReeeessssuuuulllltttt(_i_n_t_e_r_p, _d_s_P_t_r)
  43.  
  44.      AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  45.           Tcl_DString   *_d_s_P_t_r      (in/out)  Pointer   to   structure
  46.                                               that is used to manage a
  47.                                               dynamic string.
  48.  
  49.           char          *_s_t_r_i_n_g     (in)      Pointer to characters to
  50.                                               add to dynamic string.
  51.  
  52.           int           _l_e_n_g_t_h      (in)      Number   of   characters
  53.                                               from  string  to  add to
  54.                                               dynamic string.  If  -1,
  55.                                               add all characters up to
  56.                                               null         terminating
  57.                                               character.
  58.  
  59.           int           _n_e_w_L_e_n_g_t_h   (in)      New length  for  dynamic
  60.  
  61.  
  62.  
  63.      Page 1                                          (printed 7/10/95)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt((((3333))))          TTTTccccllll ((((7777....0000))))          TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt((((3333))))
  71.  
  72.  
  73.  
  74.                                               string,   not  including
  75.                                               null         terminating
  76.                                               character.
  77.      _________________________________________________________________
  78.  
  79.  
  80.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  81.           Dynamic  strings  provide  a  mechanism  for   building   up
  82.           arbitrarily long strings by gradually appending information.
  83.           If the dynamic string is short then there will be no  memory
  84.           allocation  overhead;  as the string gets larger, additional
  85.           space will be allocated as needed.
  86.  
  87.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt initializes a dynamic string to zero length.
  88.           The  Tcl_DString  structure  must have been allocated by the
  89.           caller.  No assumptions are made about the current state  of
  90.           the  structure; anything already in it is discarded.  If the
  91.           structure has been used previously,  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggFFFFrrrreeeeeeee  should
  92.           be  called first to free up any memory allocated for the old
  93.           string.
  94.  
  95.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnndddd adds new information to a dynamic  string,
  96.           allocating  more memory for the string if needed.  If _l_e_n_g_t_h
  97.           is less than zero then everything in _s_t_r_i_n_g is  appended  to
  98.           the  dynamic  string;  otherwise _l_e_n_g_t_h specifies the number
  99.           of bytes to append.  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnndddd returns a pointer  to
  100.           the  characters  of  the new string.  The string can also be
  101.           retrieved  from  the  _s_t_r_i_n_g  field   of   the   Tcl_DString
  102.           structure.
  103.  
  104.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnnddddEEEElllleeeemmmmeeeennnntttt  is  similar  to  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnndddd
  105.           except  that  it  doesn't take a _l_e_n_g_t_h argument (it appends
  106.           all of _s_t_r_i_n_g) and it converts the string to a  proper  list
  107.           element  before  appending.  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnnddddEEEElllleeeemmmmeeeennnntttt adds a
  108.           separator space before the new list element unless  the  new
  109.           list element is the first in a list or sub-list (i.e. either
  110.           the current string is  empty,  or  it  contains  the  single
  111.           character  ``{'',  or the last two characters of the current
  112.           string are  ``  {'').   TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnnddddEEEElllleeeemmmmeeeennnntttt  returns  a
  113.           pointer to the characters of the new string.
  114.  
  115.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggSSSSttttaaaarrrrttttSSSSuuuubbbblllliiiisssstttt  and  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggEEEEnnnnddddSSSSuuuubbbblllliiiisssstttt  can  be
  116.           used  to create nested lists.  To append a list element that
  117.           is itself a  sublist,  first  call  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggSSSSttttaaaarrrrttttSSSSuuuubbbblllliiiisssstttt,
  118.           then  call TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggAAAAppppppppeeeennnnddddEEEElllleeeemmmmeeeennnntttt for each of the elements
  119.           in the sublist, then call TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggEEEEnnnnddddSSSSuuuubbbblllliiiisssstttt to  end  the
  120.           sublist.   TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggSSSSttttaaaarrrrttttSSSSuuuubbbblllliiiisssstttt appends a space character
  121.           if needed, followed by an open brace;  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggEEEEnnnnddddSSSSuuuubbbblllliiiisssstttt
  122.           appends a close brace.  Lists can be nested to any depth.
  123.  
  124.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggLLLLeeeennnnggggtttthhhh is a macro that returns the current length
  125.           of  a  dynamic  string  (not  including the terminating null
  126.  
  127.  
  128.  
  129.      Page 2                                          (printed 7/10/95)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt((((3333))))          TTTTccccllll ((((7777....0000))))          TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggIIIInnnniiiitttt((((3333))))
  137.  
  138.  
  139.  
  140.           character).  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggVVVVaaaalllluuuueeee is a   macro  that  returns  a
  141.           pointer to the current contents of a dynamic string.
  142.  
  143.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggTTTTrrrruuuunnnncccc truncates  a  dynamic  string  to  a  given
  144.           length.   It has no effect if the string was already smaller
  145.           than  _n_e_w_L_e_n_g_t_h.   This  procedure  does  not  free  up  the
  146.           string's  storage  space, even if the string is truncated to
  147.           zero length,  so  TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggFFFFrrrreeeeeeee  will  still  need  to  be
  148.           called.
  149.  
  150.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggFFFFrrrreeeeeeee should be called when you're finished  using
  151.           the  string.   It frees up any memory that was allocated for
  152.           the string and reinitializes the string's value to an  empty
  153.           string.
  154.  
  155.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggRRRReeeessssuuuulllltttt sets the result of _i_n_t_e_r_p to the value  of
  156.           the dynamic string given by _d_s_P_t_r.  It does this by moving a
  157.           pointer from _d_s_P_t_r to _i_n_t_e_r_p->_r_e_s_u_l_t.  This saves  the  cost
  158.           of   allocating   new   memory   and   copying  the  string.
  159.           TTTTccccllll____DDDDSSSSttttrrrriiiinnnnggggRRRReeeessssuuuulllltttt also reinitializes the dynamic  string  to
  160.           an empty string.
  161.  
  162.  
  163.      KKKKEEEEYYYYWWWWOOOORRRRDDDDSSSS
  164.           append, dynamic string, free, result
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.      Page 3                                          (printed 7/10/95)
  196.  
  197.  
  198.  
  199.